GrabHelper automatically releases grabs when the user clicks outside
the grabbed actors. However at least for the message-tray (which is
the only user of grabHelper at the moment), we must ignore any events
from the On-Screen-Keyboard, to prevent the tray from hiding at every
key press.
https://bugzilla.gnome.org/show_bug.cgi?id=683546
if (this._isWithinGrabbedActor(event.get_source()))
return false;
+ if (Main.keyboard.shouldTakeEvent(event))
+ return false;
+
if (button) {
// If we have a press event, ignore the next event,
// which should be a release event.
}
},
+ shouldTakeEvent: function(event) {
+ let actor = event.get_source();
+ return Main.layoutManager.keyboardBox.contains(actor) ||
+ actor._extended_keys || actor.extended_key;
+ },
+
show: function () {
this._redraw();